//
//  242_有效的字母异位词.swift
//  Swift-LeetCode
//
//  Created by 卢悦明 on 2024/3/11.
/**
 https://leetcode.cn/problems/valid-anagram/description/
 给定两个字符串 s 和 t ，编写一个函数来判断 t 是否是 s 的字母异位词。

 注意：若 s 和 t 中每个字符出现的次数都相同，则称 s 和 t 互为字母异位词。

  

 示例 1:

 输入: s = "anagram", t = "nagaram"
 输出: true
 示例 2:

 输入: s = "rat", t = "car"
 输出: false
 */

import UIKit

class YiWeiWord: NSObject {
    
    func QA() {
        print(isAnagram("anagram", "nagaram"))
        print(isAnagram("aacc", "ccac"))

    }
    
    func isAnagram(_ s: String, _ t: String) -> Bool {
        if s.count == 0 && t.count == 0 {
            return true
        }
        if s.count != t.count{
            return false
        }
        var dict = [Character: Int]()
        for char in s {
            let count = dict[char] ?? 0
            dict[char] = count + 1
        }
        print(dict)
        for char in t {
            if let count = dict[char], count > 0 {
                dict[char] = count - 1
            } else {
                return false
            }
        }
        print(dict)

        return true
    }
}
